package metier;

public abstract class Matiere {

	//Attributs priv�s
	private String nom="";			/*Nom de la mati�re*/
	private int coefficient=0;			/*Coefficient de la mati�re*/
	private String description="";	/*Description de la mati�re*/
     private UE ue;
     int id;



    public Matiere(){
        
    }

    public UE getUe() {
        return ue;
    }

    public void setUe(UE ue) {
        this.ue = ue;
    }

	//Constructeurs

	/**
	 * @param nom
	 * @param coefficient
	 * @param description
	 * @param id
	 */
	public Matiere(UE ue, String nom, String description, int coefficient) {
		this.ue = ue;
		this.nom = nom;
		this.coefficient = coefficient;
		this.description = description;
	}


	
	//Accesseurs

    /**
	 * @return the nom nom de l'UE
	 */
    public String getNom() {
		return nom;
	}

    /**
	 * @param nom
	 *            the nom to set
	 */
	public void setNom(String nom) {
		this.nom = nom;
	}

	/**
	 * @return the coefficient coefficient de l'UE
	 */
	public int getCoefficient() {
		return coefficient;
	}

	/**
	 * @param coefficient
	 *            the coefficient to set
	 */
	public void setCoefficient(int coefficient) {
		this.coefficient = coefficient;
	}

	/**
	 * @return the description description de l'UE
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @param description
	 *            the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

	// M�thodes abstraites
    /**
     * @throws ExceptionMetier
     * M�thode qui permet d'ins�rer l'objet dans le syst�me de stockage
     */
    public abstract void insert() throws ExceptionMetier;

    /**
     * @throws ExceptionMetier
     * M�thode qui permet de mettre � jour l'objet dans le syst�me de stockage
     */
    public abstract void update() throws ExceptionMetier;

    /**
     * @throws ExceptionMetier
     * M�thode qui permet de supprimer l'objet dans le syst�me de stockage
     */
    public abstract void delete() throws ExceptionMetier;

   
    /**
     * @throws ExceptionMetier
	 * @param id identifiant de la matiere
	 * M�thode qui permet de charger un objet � partir du syst�me de stockage
	 * avec un identifiant donn�
	 */
	public abstract void load(int id) throws ExceptionMetier;
}
